#include <cstdint>
#include <fstream>
#include <iostream>
#include <istream>
#include <vector>
#include <algorithm>
using namespace std;

using ll=int64_t;

ifstream fin("matrix.in");
ofstream fout("matrix.out");

#define cin fin
#define cout fout

static inline void solve(){
    ll n, m, q;
    cin >> n >> m >> q;
    static vector<ll> a;
    a.clear();
    a.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    if (n == 1) {
        while (q--) {
            ll l, r;
            cin >> l >> r;
            cout << (r - l + 1) << endl;
        }
    } else {
        sort(a.begin(), a.end());
        ll span = a[n - 1] - a[0];
        static vector<ll> d;
        d.clear();
        for (int i = 0; i < n - 1; i++) {
            d.push_back(a[i + 1] - a[i]);
        }
        sort(d.begin(), d.end());
        static vector<ll> pre;
        pre.resize(d.size());
        if (!d.empty()) {
            pre[0] = d[0];
            for (int i = 1; i < d.size(); i++) {
                pre[i] = pre[i - 1] + d[i];
            }
        }
        while (q--) {
            ll l, r;
            cin >> l >> r;
            ll L = r - l + 1;
            auto it = upper_bound(d.begin(), d.end(), L);
            ll pos = it - d.begin();
            ll cnt = 0, sum = 0;

            if (pos < d.size()) {
                cnt = d.size() - pos;
                if (pos == 0) {
                    sum = pre[d.size() - 1];
                } else {
                    sum = pre[d.size() - 1] - pre[pos - 1];
                }
            }
            ll ans = span + L + cnt * L - sum;
            cout << ans << '\n';
        }
    }
}

int main() {
    int T;
    cin >> T;
    while (T--) {
        solve();
    }
}
